/*
 * Tournament.h
 *
 *  Created on: Feb 24, 2011
 *      Author: Ronald
 */

#ifndef TOURNAMENT_H_
#define TOURNAMENT_H_
#include "Team.h"
#include "Group.h"
#include "Match.h"

class Tournament
{
public:
	Tournament();
	virtual ~Tournament();
	void buildTeams();
	void buildGroups();
	void stage1();
	void stage2();
	void quarterFinal();
	void semiFinal();
	void consilationGame();
	void finals();
	void run();
	void printRankings();
	vector<int> allTeamPoints;
	Team* brazil;
	Team* spain;
	Team* portugal;
	Team* netherlands;
	Team* italy;
	Team* germany;
	Team* argentina;
	Team* england;
	Team* france;
	Team* greece;
	Team* usa;
	Team* serbia;
	Team* uruguay;
	Team* mexico;
	Team* chile;
	Team* cameroon;
	Team* australia;
	Team* nigeria;
	Team* switzerland;
	Team* slovenia;
	Team* ivorycoast;
	Team* algeria;
	Team* paraguay;
	Team* ghana;
	Team* slovakia;
	Team* denmark;
	Team* honduras;
	Team* japan;
	Team* southkorea;
	Team* newzealand;
	Team* southafrica;
	Team* northkorea;
	Team* team1;
	Team* team2;
	Team* team3;
	Team* team4;
	Group* groupA;
	Group* groupB;
	Group* groupC;
	Group* groupD;
	Group* groupE;
	Group* groupF;
	Group* groupG;
	Group* groupH;
	Group* currentGroup;
	vector<Group*> groups;
	vector<Team*> teams;
	vector<Team*> stage1Winners;
	vector<Team*> stage2Winners;
	vector<Team*> quarterFinalWinners;
	vector<Team*> semiFinalWinners;
	vector<Team*> consilationTeams;
	int gameNumber;
};

#endif /* TOURNAMENT_H_ */
